<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Guideline: 测试中的重要决策</title>
<meta name="uma.type" content="Guideline">
<meta name="uma.name" content="important_decisions_in_test">
<meta name="uma.presentationName" content="测试中的重要决策">
<meta name="element_type" content="other">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="2.474890767192022E-305"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Guideline: 测试中的重要决策</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/guidance.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">本指南为规划测试活动提供路线图</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/tasks/develop_development_case_B10E3391.html" guid="{F6999E01-701F-4D48-9E83-A063CB35912B}">Develop Development Case</a>
</li>
<li>
<a href="./../../../rup/disciplines/rup_test_discipline_9DFAFB2F.html" guid="_yd3EzdnmEdmO6L4XMImrsA">测试</a>
</li>
<li>
<a href="./../../../rup/domains/test_FBB424F8.html" guid="_SPvXcN7IEdm8G6yT7-Wdqw">测试</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/test_7EF99F54.html" guid="{35359DDF-6361-43E5-8B1B-18D204DA8CFF}">测试</a>
</li>
<li>
<a href="./../../../rup/tasks/tailor_process_for_project_6CFD05E2.html" guid="{1BA9AAA0-DA89-4C14-B45A-CE28A8A10894}">为项目定制开发流程</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a><a key="测试规程（test discipline）" text="重要决策" name="XE_test_discipline__important_decisions" id="XE_test_discipline__important_decisions" class="index"></a> 
<h3>
    <a id="DecideHowToUseArtifacts" name="DecideHowToUseArtifacts">决定如何使用工作产品</a>
</h3>
<p>
    决定要使用哪些工作产品以及如何有效地使用每个工作产品。下表描述我们建议您应使用的工作产品，以及您可能考虑在特定环境中使用的工作产品。
    关于如何定制每个工作产品的更多详细信息，以及有关该特定工作产品的优缺点的讨论，请阅读每个工作产品的标题为“定制”的部分。
</p>
<p>
    对于每个工作产品，决定应如何使用工作产品：必须拥有、应该拥有、可以拥有或不能拥有。关于更多详细信息，请参阅<a class="elementLinkWithUserText" href="./../../../rup/guidances/guidelines/classifying_work_products_4250A298.html" guid="7.27749388241665E-306">技术：将工作产品分类</a>。
</p>
<div>
    <table     style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid"      cellspacing="0" bordercolordark="#808080" cellpadding="4" width="100%" bordercolorlight="#808080" border="1">
        <tbody>
            <tr>
                <th scope="col" align="left" width="20%">
                    工作产品
                </th>
                <th scope="col" align="left" width="40%">
                    用途
                </th>
                <th scope="col" align="left" width="40%">
                    定制（可选，建议使用）
                </th>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_evaluation_summary_D9B4016B.html" guid="{C6AAA2A6-C5AD-42DA-BCBC-9B1349D7B6CF}">测试评估摘要</a>
                </td>
                <td width="40%">
                    总结主要由管理团队和测试团队以外的其他项目干系人使用的测试结果。
                </td>
                <td width="40%">
                    建议大多数项目使用。<br />
                    <br />
                    在项目文化相对不很正式的情况下，适合于只是记录测试结果，而不创建正式的评估摘要。 在其他情况下，测试评估摘要可以作为其他评估工作产品（例如<a class="elementLink" href="./../../../rup/workproducts/rup_iteration_assessment_D08C6F7.html" guid="{06114AF1-4D98-46B5-AE8B-DDEDFFE9B42B}">迭代评估</a>或<a class="elementLink" href="./../../../rup/workproducts/rup_review_record_CA816ECE.html" guid="{4047B5B0-5FB7-4960-8A7E-451719D85DFF}">评审记录</a>）的一部分而包括在内。
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_results_189F0BEF.html" guid="{87374880-B351-4822-8C1E-819ECA9F51D4}">测试结果 </a>
                </td>
                <td width="40%">
                    该工作产品是由一个或多个测试日志中的原始数据而确定的分析结果。
                </td>
                <td width="40%">
                    建议使用。大多数测试团队都为测试结果保留了某种形式的适度详细的记录。 这里通常直接记录手动测试结果，并与从自动测试中提取的测试日志相结合。<br />
                    <br />
                    在某些情况下，测试团队将根据测试日志直接生成测试评估摘要。
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_log_50821860.html" guid="{528F34BA-0118-40F3-8D29-DE60EF4183A6}">测试日志</a>
                </td>
                <td width="40%">
                    <p>
                        测试执行期间的原始数据输出，通常由自动测试生成。
                    </p>
                </td>
                <td width="40%">
                    <p>
                        可选。
                    </p>
                    <p>
                        许多执行自动测试的项目将有某种形式的测试日志。项目之间的区别在于，确定了测试结果之后，是保留还是废弃测试日志。
                    </p>
                    <p>
                        在以下情况下您可以保留测试日志：您需要满足某些审计需求，您想要执行关于原始测试输出数据如何随时间变化的分析，或者您对于可能需要您提供的所有分析的开始不确定。
                    </p>
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_suite_DA8938D2.html" guid="{33DE37A2-ECFE-483B-934B-629F5802F87C}">测试套件</a>
                </td>
                <td width="40%">
                    用来将个别的相关测试（测试脚本）组合到有意义的子集中。
                </td>
                <td width="40%">
                    建议大多数项目使用。<br />
                    <br />
                    对于定义所有测试脚本执行顺序（这些执行顺序对于正确进行测试是必需的）也是必需的。
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_ideas_list_2A0F8E03.html" guid="{45219F27-0F84-4FD5-A7BC-73C19226303B}">测试构想列表</a>
                </td>
                <td width="40%">
                    这是一系列的枚举构想，通常已部分形成，被视为要开展的有用测试。
                </td>
                <td width="40%">
                    建议大多数项目使用。<br />
                    <br />
                    在某些情况下，只是非正式地定义这些列表，一旦从中定义了测试脚本或测试用例，就废弃这些列表。
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_strategy_C1677B8.html" guid="{DC3E85E6-C5A9-4AC6-8DDF-E2CF2CB0573E}">测试策略</a>
                </td>
                <td width="40%">
                    就如何针对目标系统的一个或多个方面来开展测试工作定义策略计划。
                </td>
                <td width="40%">
                    建议大多数项目使用。<br />
                    <br />
                    在大多数情况下，建议您针对每个项目或项目的每个阶段制定一个测试策略。 作为一种选择，您可以在适当的情况下重用现有的策略，或者您可以基于正在开展的测试的类型进一步细分测试策略。
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_plan_53712941.html" guid="{B95CA9FA-A00E-4C6C-AA16-133297812CC0}">测试计划</a>
                </td>
                <td width="40%">
                    定义更细化的测试目标、目的、动因、方法、资源、时间表和可交付工件，它们控制着迭代。
                </td>
                <td width="40%">
                    建议大多数项目使用。<br />
                    <br />
                    建议对每个迭代制定单独的测试计划，以定义特定的、细化的测试策略。 作为一种选择，您可以将测试计划作为<a class="elementLink" href="./../../../rup/workproducts/rup_iteration_plan_623AFF7F.html" guid="{97269E0F-CDF3-448D-A732-DF39D099BDDD}">迭代计划</a>的一部分而包括在内。
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_plan_53712941.html" guid="{B95CA9FA-A00E-4C6C-AA16-133297812CC0}">测试计划</a>
                </td>
                <td width="40%">
                    定义高级测试目标、目的、方法、资源、时间表和可交付工件，它们控制着某一阶段或整个生命周期。
                </td>
                <td width="40%">
                    可选。对大多数项目有用。<br />
                    <br />
                    主测试计划为在软件开发生命周期的大部分时间内耗费的测试工作定义高级策略。 作为一种选择，您可以将测试计划作为<a class="elementLink" href="./../../../rup/workproducts/rup_project_plan_D89CA030.html" guid="{D77D6716-B167-4643-A4B6-6F76C7769A80}">软件开发计划</a>的一部分而包括在内。<br />
                    <br />
                    考虑除“迭代”测试计划外，是否还维护“主”测试计划。主测试计划主要包含后勤和流程制定信息，这些信息通常与整个项目生命周期相关，因此在迭代之间不大可能发生变化。
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_script_2140080.html" guid="{293A9F23-BB20-4993-AABE-76C1E8E1A589}">测试脚本</a>，<a class="elementLink" href="./../../../rup/workproducts/rup_test_data_AD333F7A.html" guid="{5FFF9828-AB23-4C09-8293-42A90E90378B}">测试数据</a>
                </td>
                <td width="40%">
                    测试脚本和测试数据是测试的实现或实现，其中测试脚本体现过程方面，而测试数据体现定义特征方面。
                </td>
                <td width="40%">
                    建议大多数项目使用。<br />
                    <br />
                    项目之间的差别在于处理这些工作产品的正式程度。在某些情况下，这些工件是不正式和暂时的，而测试团队是根据其他条件来判断的。
                    在其他情况下（尤其是对于自动测试），测试脚本和相关的测试数据（或数据的某一小部分）被视为测试工作的主要可交付工件。
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_case_8AFEC963.html" guid="{D525758B-EBA2-4F59-9BA6-226820C27ADD}">测试用例</a>
                </td>
                <td width="40%">
                    <p>
                        定义一组特定的测试输入、执行条件和预期结果。
                    </p>
                    <p>
                        记录测试用例，这样就可以评审它们的完成情况和正确性，并在计划和执行实现工作之前考虑测试用例。
                    </p>
                    <p>
                        这在输入、执行条件和预期结果特别复杂时最有用。
                    </p>
                </td>
                <td width="40%">
                    <p>
                        建议：对于大多数项目，如果开展特定测试所需要的条件很复杂或广泛，那么您应定义测试用例。 如果测试用例是合同所要求的可交付工件，您也需要记录测试用例。
                    </p>
                    <p>
                        在大多数其他情况下，建议您维护测试构想列表和已实现的测试脚本，而非详细的文本测试用例。
                    </p>
                    <p>
                        有些项目将只是在较高层面上概括测试用例，而将细节延至测试脚本中描述。 另一种常用风格是将测试用例信息作为注释记录在测试脚本中。
                    </p>
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_workload_analysis_model_E86A32FF.html" guid="{008164B1-3AC3-47E8-9F93-EE4C36B58A97}">工作负载分析模型</a>
                </td>
                <td width="40%">
                    <p>
                        一类专门的测试用例。用来定义有代表性的工作负载，以允许评估与在负载内的系统操作相关联的质量风险。
                    </p>
                </td>
                <td width="40%">
                    <p>
                        建议用于大多数系统，尤其是那些必须评估负载内性能的系统，或者是存在与负载内系统操作相关联的其他重大质量风险的系统。
                    </p>
                    <p>
                        对于将在单机目标系统上部署的系统，通常不需要。
                    </p>
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <p>
                        设计模型中的<a class="elementLinkWithUserText" href="./../../../rup/workproducts/rup_test_class_790117F2.html" guid="{1C78947B-33D4-49AF-9E1F-655E7D74C53F}">可测性类</a>
                    </p>
                    <p>
                        实现模型中的<a class="elementLinkWithUserText" href="./../../../rup/workproducts/rup_test_component_9EC4F18F.html" guid="{35BD7E4D-4757-441D-B531-E9CF5BD87DE4}">可测性元素</a>
                    </p>
                </td>
                <td width="40%">
                    <p>
                        如果项目必须制定其他重大而专门的行为来适应并支持测试，可通过将可测性类包括在设计模型中并将可测性元素包括在实现模型中，来表示这些关注问题。
                    </p>
                </td>
                <td width="40%">
                    <p>
                        在需要时使用。
                    </p>
                    <p>
                        <a class="elementLink" href="./../../../rup/guidances/concepts/stubs_9CB734F8.html" guid="6.347489919609074E-305">桩模块</a>是一类常见的测试类和测试组件。
                    </p>
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_automation_architecture_650DD06A.html" guid="{B5B77528-E14B-43CA-BC73-D64A90A17E2D}">测试自动化架构</a>
                </td>
                <td width="40%">
                    <p>
                        使用许多不同的架构视图来描绘系统的不同方面，对测试自动化系统进行架构性概述。
                    </p>
                </td>
                <td width="40%">
                    <p>
                        可选。
                    </p>
                    <p>
                        建议用于这样的项目，其中的测试架构比较复杂，有大量人员来协作构建自动化测试，或者预期要长期维护测试自动化系统。
                    </p>
                    <p>
                        在某些情况下，这可能只是白板上的一幅图，该图主要是为要咨询的各关注方而记录的。
                    </p>
                </td>
            </tr>
            <tr>
                <td width="20%">
                    <a class="elementLink" href="./../../../rup/workproducts/rup_test_interface_specification_F1C8A203.html" guid="{020BA1FD-8940-4473-9C5B-0CA35FDDF4E6}">测试接口规约</a>
                </td>
                <td width="40%">
                    <p>
                        为了测试（可测性）起见，按分类器（特别是类、子系统或组件）定义一组必需的行为。常见的类型包括测试访问、桩模块行为、诊断日志记录和测试预测。
                    </p>
                </td>
                <td width="40%">
                    <p>
                        可选。
                    </p>
                    <p>
                        在许多项目中，对于类和用户界面等的可视操作的测试，也存在足够的可访问性。
                    </p>
                    <p>
                        创建测试接口规约的一些公共原因包括 UI 扩展（这些扩展允许 GUI 测试工具与接口和诊断消息日志记录例程交互），尤其是对于批处理。
                    </p>
                </td>
            </tr>
        </tbody>
    </table><br />
</div>
<p>
    根据项目的需要定制每个工作产品。关于定制注意事项，请参阅工作产品的描述页的定制部分，或<a class="elementLinkWithType" href="./../../../rup/tasks/develop_development_case_B10E3391.html" guid="{F6999E01-701F-4D48-9E83-A063CB35912B}">Task: Develop Development Case</a>中的标题“按照规程定制工作产品”下描述的步骤。
</p>
<h3>
    <a id="DecideHowToReviewArtifacts" name="DecideHowToReviewArtifacts">决定如何评审工作产品</a>
</h3>
<p>
    此部分提供一些指南，以帮助您决定应如何评审测试工作产品。 对于通用指南，请参阅<a class="elementLinkWithType" href="./../../../rup/guidances/guidelines/review_levels_72ACB304.html" guid="8.546224914239529E-306">Guideline: 评审级别</a>。
</p>
<h4>
    缺陷
</h4>
<p>
    对缺陷评审的处理极度依赖于环境，不过它们一般是作为<b>非正式</b>、<b>内部正式</b>或<b>外部正式</b>工作来对待的。 此评审流程常常由缺陷跟踪系统中的工作流程管理强制实行，或至少辅助其实行。
    一般而言，评审的正式程度常常与感受到的缺陷严重性或影响有关，不过诸如项目文化和形式程度之类的因素常常会影响评审处理的选择。
</p>
<p>
    在有些情况下，您可能需要考虑将缺陷（也称为症状或故障）的处理与故障（实际的错误来源）的处理分开来。 对于小型项目，您通常可以通过只跟踪缺陷来进行管理，并隐式地处理故障。
    不过，随着系统复杂性的增长，将缺陷的管理与故障的管理分开来可能是有益的。例如，同一个故障可能会造成若干个缺陷。 所以，如果故障已解决，则有必要找出所报告的缺陷并通知提交这些缺陷的用户，只有在分别标识缺陷和故障的情况下才有可能进行该操作。
</p>
<h4>
    测试计划和测试策略
</h4>
<p>
    在测试占有重要地位的任何项目中，您将需要某种形式的测试计划或策略。 通常，您需要有针对每个迭代的测试计划和某种形式的主控测试策略。作为一种选择，您可以创建和维护主测试计划。
    在许多情况下，这些工作产品的评审结果为<b>不正式</b>；也就是说，它们已经过评审，但未正式核准。如果测试可视性对于测试团队以外的项目干系人很重要，它应该被视为<b>内部正式</b>，或甚至为<b>外部正式</b>。
</p>
<h4>
    测试脚本
</h4>
<p>
    测试脚本通常被视为<b>不正式</b>，也就是说，它们由测试团队中某名成员核准。 如果测试脚本要供许多测试人员使用，并由许多不同的测试共享或复用，则它们应被视为<b>内部正式</b>。
</p>
<h4>
    测试用例
</h4>
<p>
    测试用例由测试团队创建，且（根据环境）通常使用<b>非正式</b>流程进行评审，或者根本不评审。
    在适当情况下，测试用例可以由其他团队成员核准，在这种情况下它们可被视为<b>内部正式</b>，或由外部项目干系人核准，在这种情况下它们将是<b>外部正式</b>。
</p>
<p>
    作为一般试探性方法，建议您只计划正式地评审有必要评审的测试用例，这些测试用例通常将限制为代表最重要测试用例的一小部分。
    例如，如果客户要在产品发行之前验证产品，则可选择某一部分测试用例作为该验证的基础。这些测试用例应被视为<b>外部正式</b>。
</p>
<h4>
    设计和实现中的测试工作产品
</h4>
<p>
    可测性类是在设计模型中找到的，而可测性元素是在实现模型中找到的。 还有另外两个相关（尽管不是特定于测试）的工作产品：设计模型中的包和实现模型中的子系统。
</p>
<p>
    这些工作产品是设计工作产品和实现工作产品，不过，创建它们是为了支持软件中的测试功能。 正常情况下，它与设计工作产品和实现工作产品保存在一起。 请记住，以适当方式命名或标记它们，使它们能明确地与核心系统的设计和实现分开来。
    按照设计和实现工作产品的评审过程来评审这些工作产品。
</p>
<h3>
    <a id="DecideOnTestApprovalCriteria" name="DecideOnTestApprovalCriteria">决定迭代核准条件</a>
</h3>
<p>
    在进入每个迭代时，请努力提前确定将如何判断测试工作已足够，以及度量判断的依据是什么。 与负责做出核准决策的个人或小组讨论，确定这一事项。
</p>
<p>
    以下是处理迭代核准的示例方法：
</p>
<ul>
    <li>
        项目管理团队核准迭代，并通过评审测试评估摘要来评估测试工作。
    </li>
    <li>
        客户通过评审测试评估摘要来核准迭代。
    </li>
    <li>
        客户根据展示的结果（该展示演习所有测试的某一部分）来核准迭代。这部分测试应预先定义并由各方达成一致，最好是在迭代早期。 这些测试被视为<b>外部正式</b>，常常被称为<i>验收测试</i>。
    </li>
    <li>
        客户通过开展他们自己的独立测试，来核准系统质量。同样，这些测试的性质应预先明确定义并由各方达成一致，最好是在迭代早期。 这些测试被视为<b>外部正式</b>，常常被称为<i>验收测试</i>。
    </li>
</ul>
<p>
    这是个重要的决定 － 如果您不知道目标是什么，您就无法达到目标。
</p><br />
<br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
